package tp1POO.Modelo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Tipo extends ObjetoPOO implements Serializable {
	
	public Tipo() {
	}
	/**
	 * Construtor padrão
	 * 
	 * @see Tipo#Tipo(String, float, float)
	 * @param parNome nome do tipo (String)
	 */
	public Tipo(String parNome){
		this.nome = parNome;
	}
	/**
	 * Contrutor padrão
	 * 
	 * @see Tipo#Tipo(String)
	 * @param parNome nome do tipo (String)
	 * @param parTaxaBase taxa base do tipo (float)
	 * @param parPrecoQuilometro preço por quilômetro (float)
	 */
	public Tipo(String parNome, float parTaxaBase, float parPrecoQuilometro){
		this.nome = parNome;
		this.taxaBase = parTaxaBase;
		this.precoQuilometro = parPrecoQuilometro;
	}
	/**
	 * Retorna o nome do tipo
	 * @see Tipo#getIdentifier()
	 * @return nome do tipo (String)
	 */
	public String getNome() {
		return nome;
	}
	/**
	 * Retorna a taxa base
	 * @return taxa base do tipo (String)
	 */
	public float getTaxaBase() {
		return taxaBase;
	}
	/**
	 * Retorna o preço por quilômetro
	 * @return preço por quilômetro (String)
	 */
	public float getPrecoQuilometro() {
		return precoQuilometro;
	}
	/**
	 * Retorna o identificador
	 * @return identificador do objeto
	 * @see Tipo#getNome()
	 */	
	public String getIdentifier() {
		return getNome();
	}

	@Id
	@Column(nullable=false, length=50)
	private String nome;
	@Column(nullable=false)
	private float taxaBase;
	@Column(name="preco_km", nullable=false)
	private float precoQuilometro;
}